home *** CD-ROM | disk | FTP | other *** search
/ Borland JBuilder 6 / jbuilder6.iso / IBM VisualAge for Java Enterprise v4.0 Retail / ivj40 / setup / IDE.Cab / F87871_ArrayConstructorModel.class (.txt) < prev    next >
Encoding:
Java Class File  |  2001-03-22  |  3.2 KB  |  97 lines

  1. package com.ibm.ivj.testpilot.model;
  2.  
  3. import com.ibm.ivj.testpilot.utils.ClassUtils;
  4. import java.lang.reflect.Array;
  5.  
  6. public class ArrayConstructorModel extends ExecutableModel {
  7.    private static String copyright = "Licensed Material - Property of IBM IBM(R) VisualAge(R) for Java(TM), Version 3.5 (C) Copyright IBM Corp. 1997, 2000- All Rights Reserved. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.";
  8.    private Class arrayType = null;
  9.    private MemberModel detailsMember = null;
  10.    private int numberOfDimensions = 0;
  11.    private ArrayDimensionsModel dimensionsModel = null;
  12.    private static final String lengthText = ResourceHandler.getHandler().getMessage("LENGTH");
  13.  
  14.    public ArrayConstructorModel(MemberModel var1, Class var2) {
  15.       super(var1);
  16.       this.initializeArrayType(var2);
  17.       ((MemberModel)this).initializeName("new " + ClassUtils.getShortNameFor(var2));
  18.       this.initializeNumberOfDimensions(ClassUtils.getDimensionsFor(var2));
  19.    }
  20.  
  21.    public Class getActualType() {
  22.       return this.arrayType;
  23.    }
  24.  
  25.    private Class getArrayType() {
  26.       return this.arrayType;
  27.    }
  28.  
  29.    public MemberModel[] getConciseMembers() {
  30.       return MemberModel.noMembers;
  31.    }
  32.  
  33.    public Class getDeclaredType() {
  34.       return this.arrayType;
  35.    }
  36.  
  37.    public MemberModel getDetailsMember() {
  38.       if (this.detailsMember == null) {
  39.          ArrayDimensionsModel var1 = this.getDimensionsModel();
  40.          int var2 = this.getNumberOfDimensions();
  41.          switch (var2) {
  42.             case 0:
  43.                this.detailsMember = MemberModel.nullModel;
  44.                break;
  45.             case 1:
  46.                this.detailsMember = ((ObjectModel)var1).getMembers()[0];
  47.                this.detailsMember.initializeName(lengthText);
  48.                break;
  49.             default:
  50.                this.detailsMember = var1;
  51.          }
  52.       }
  53.  
  54.       return this.detailsMember;
  55.    }
  56.  
  57.    public ArrayDimensionsModel getDimensionsModel() {
  58.       if (this.dimensionsModel == null) {
  59.          this.dimensionsModel = new ArrayDimensionsModel(this.getNumberOfDimensions());
  60.       }
  61.  
  62.       return this.dimensionsModel;
  63.    }
  64.  
  65.    public MemberModel[] getMembers() {
  66.       return MemberModel.noMembers;
  67.    }
  68.  
  69.    private int getNumberOfDimensions() {
  70.       return this.numberOfDimensions;
  71.    }
  72.  
  73.    public boolean hasResult() {
  74.       return true;
  75.    }
  76.  
  77.    private void initializeArrayType(Class var1) {
  78.       this.arrayType = var1;
  79.    }
  80.  
  81.    private void initializeNumberOfDimensions(int var1) {
  82.       this.numberOfDimensions = var1;
  83.    }
  84.  
  85.    public void invoke() throws Throwable {
  86.       Class var1 = ClassUtils.getRootComponentType(((MemberModel)this).getType());
  87.       Object var2 = null;
  88.       int[] var3 = this.getDimensionsModel().getArrayDimensions();
  89.       var2 = Array.newInstance(var1, var3);
  90.       ((ExecutableModel)this).setResult(var2);
  91.    }
  92.  
  93.    public void resetMembers() {
  94.       this.detailsMember = null;
  95.    }
  96. }
  97.